gtk4.git
8 years agoinspector: Stop using ::key-press-event
Matthias Clasen [Sun, 4 Feb 2018 08:29:44 +0000 (09:29 +0100)]
inspector: Stop using ::key-press-event

8 years agotestgtk: Drop snapshot
Matthias Clasen [Sat, 3 Feb 2018 12:01:47 +0000 (13:01 +0100)]
testgtk: Drop snapshot

This needs to be redone with modern snapshotting infrastructure.
Lets drop it for now, it is somewhat duplicative with inspector
features.

8 years agotestgtk: Drop the event watcher
Matthias Clasen [Sat, 3 Feb 2018 11:58:23 +0000 (12:58 +0100)]
testgtk: Drop the event watcher

This is not a very useful test, and it is hard to keep working
in an event controller world.

8 years agodocs: Modernize an example
Matthias Clasen [Sat, 3 Feb 2018 10:41:33 +0000 (11:41 +0100)]
docs: Modernize an example

The signals that are showcased here are going away.

8 years agogtk-demo: Stop using ::key-press-event in font explorer
Matthias Clasen [Wed, 31 Jan 2018 11:42:43 +0000 (12:42 +0100)]
gtk-demo: Stop using ::key-press-event in font explorer

Use a key controller instead. Note that this currently
breaks the handling of Enter, since we activate key bindings
twice, causing us to switch to the label and back.

8 years agotestsuite: Don't use ::key-press-event
Matthias Clasen [Wed, 31 Jan 2018 11:35:05 +0000 (12:35 +0100)]
testsuite: Don't use ::key-press-event

We don't need it here.

8 years agofile chooser: Use a key event controller
Matthias Clasen [Thu, 25 Jan 2018 07:27:43 +0000 (08:27 +0100)]
file chooser: Use a key event controller

We want to get rid of ::key-press-event.

8 years agodemos: Add "Paint" demo
Carlos Garnacho [Fri, 2 Feb 2018 15:04:17 +0000 (16:04 +0100)]
demos: Add "Paint" demo

8 years agogtk: Add GtkGestureStylus
Carlos Garnacho [Thu, 1 Feb 2018 16:52:40 +0000 (17:52 +0100)]
gtk: Add GtkGestureStylus

This is a GtkGesture done to deal with stylus events from drawing tablets.
Those have a special number of characteristics that extend a regular
pointer, so it makes sense to wrap that.

8 years agogtkwindow: Unset focus grab_widget if it ends up unmapped
Carlos Garnacho [Mon, 29 Jan 2018 11:31:53 +0000 (12:31 +0100)]
gtkwindow: Unset focus grab_widget if it ends up unmapped

This may result on the later emission of crossing events, with one of the
sides being already unmapped/unrealized. The widget being unmapped will
result on repick and emission of a set of crossing events anyway.

8 years agogtk: Add GtkEventControllerKey
Carlos Garnacho [Mon, 11 Dec 2017 18:21:38 +0000 (19:21 +0100)]
gtk: Add GtkEventControllerKey

This event controller is meant to replace usage from key-press/release-event
handlers all through. Optionally it can be set a GtkIMContext, so interaction
is carried by the controller.

8 years agosnapshot: Don't cause invalid reads
Benjamin Otte [Thu, 5 Apr 2018 16:18:55 +0000 (18:18 +0200)]
snapshot: Don't cause invalid reads

1. Pass clip rectangles to gtk_snapshot_push_state() that point into
   the state array.
2. g_array_set_size(len+1) the state array
3. Make that function realloc() the state array.
4. The clip rectangle now points into invalid memory
5. Use the clip array

This patch fixes things by moving step 5 to before step 2.

8 years agorendernode: Add missing return
Benjamin Otte [Thu, 5 Apr 2018 15:32:57 +0000 (17:32 +0200)]
rendernode: Add missing return

Don't to extra work when not needed.

8 years agoUpdate POTFILES.in
Piotr Drąg [Thu, 5 Apr 2018 15:37:22 +0000 (17:37 +0200)]
Update POTFILES.in

8 years agowidget: Fix variable names
Benjamin Otte [Thu, 5 Apr 2018 15:09:52 +0000 (17:09 +0200)]
widget: Fix variable names

Stop docs build from complaining

8 years agoa11y: Fix headers
Benjamin Otte [Thu, 5 Apr 2018 15:05:21 +0000 (17:05 +0200)]
a11y: Fix headers

We were getting a gcc warning before.

8 years agoMerge branch 'window-activate' into 'master'
Benjamin Otte [Thu, 5 Apr 2018 14:36:13 +0000 (14:36 +0000)]
Merge branch 'window-activate' into 'master'

a11y: restore window:activate/deactivate emission

Closes #127

See merge request GNOME/gtk!77

8 years agoa11y: restore window:activate/deactivate emission
Samuel Thibault [Fri, 23 Mar 2018 17:33:58 +0000 (18:33 +0100)]
a11y: restore window:activate/deactivate emission

1b9aa1b708c2 ('a11y: drop the focus tracker') removed a bit too much.  We
still have to emit window:activate/deactivate events.  They are easy to
emit anyway.

Fixes #127

8 years agoinspector: Add an fps overlay
Benjamin Otte [Thu, 5 Apr 2018 10:58:46 +0000 (12:58 +0200)]
inspector: Add an fps overlay

8 years agoinspector: Bring back debug updates
Benjamin Otte [Wed, 4 Apr 2018 11:22:28 +0000 (13:22 +0200)]
inspector: Bring back debug updates

This time, they are implemented as an overlay, so they require a running
inspector and can't be enabled via env variable anymore.

8 years agowidget: Remove draw signal
Benjamin Otte [Wed, 4 Apr 2018 11:14:21 +0000 (13:14 +0200)]
widget: Remove draw signal

The only remaining user is the text handle, but the text handle doesn't
draw anything anyway currently, so whoever fixes it can make it use
snapshots.

8 years agoinspector: Introduce so-called "overlays"
Benjamin Otte [Wed, 4 Apr 2018 10:38:09 +0000 (12:38 +0200)]
inspector: Introduce so-called "overlays"

Overlays are drawings that get rendered on top of the inspected window.

The only overlay in existence so far is the highlight overlay, which is
used to highlight widgets and replaces the "draw" signal handler used
previously.

8 years agowidget: Add gtk_widget_compute_bounds()
Benjamin Otte [Wed, 4 Apr 2018 10:01:17 +0000 (12:01 +0200)]
widget: Add gtk_widget_compute_bounds()

The first in a set of functions intended to query widget coordinates
from another widget's coordinate system.

8 years agoinspector: Change semantics of inspector render node notify
Benjamin Otte [Tue, 3 Apr 2018 19:09:35 +0000 (21:09 +0200)]
inspector: Change semantics of inspector render node notify

Instead of just notifying the inspector of what is going to be rendered,
allow the inspector to modify it.

This way, the inspector can overlay information it deems relevant over
the render node while still having access to what the actual widget
(without the inspector) would paint.

8 years agoimage: Actually report a request mode
Benjamin Otte [Tue, 3 Apr 2018 12:14:37 +0000 (14:14 +0200)]
image: Actually report a request mode

This makes height-for-width actually work for GtkImage.

I'm kinda ashamed I didn't notice it not working before.

8 years agotreeview: Remove invalidation tracking code
Benjamin Otte [Tue, 3 Apr 2018 07:30:55 +0000 (09:30 +0200)]
treeview: Remove invalidation tracking code

8 years agotestgtk: Remove draw signal usage
Benjamin Otte [Mon, 2 Apr 2018 07:18:48 +0000 (09:18 +0200)]
testgtk: Remove draw signal usage

8 years agowidget: Remove GtkWidget.draw vfunc
Benjamin Otte [Mon, 2 Apr 2018 06:34:08 +0000 (08:34 +0200)]
widget: Remove GtkWidget.draw vfunc

Widgets are exclusively snapshot now.

The draw signal still exists.

8 years agowidget: Remove gtk_widget_draw()
Benjamin Otte [Mon, 2 Apr 2018 06:28:34 +0000 (08:28 +0200)]
widget: Remove gtk_widget_draw()

If you want to draw a widget to cairo today, you create a widget
paintable, snapshot it to a render node and then draw the render node to
cairo.

And yes, this is that complicated on purpose. Don't draw widgets to
Cairo.

8 years agoreftests: Port from gtk_widget_draw() to snapshots
Benjamin Otte [Mon, 2 Apr 2018 06:25:04 +0000 (08:25 +0200)]
reftests: Port from gtk_widget_draw() to snapshots

8 years agotestgtk: Take an actual snapshot of a widget
Benjamin Otte [Mon, 2 Apr 2018 06:19:51 +0000 (08:19 +0200)]
testgtk: Take an actual snapshot of a widget

Don't just draw the widget, take the paintable of it instead!

8 years agotestlist3: Set the actual row as drag icon
Benjamin Otte [Mon, 2 Apr 2018 06:12:37 +0000 (08:12 +0200)]
testlist3: Set the actual row as drag icon

(Well, don't do anything actually, because dnd is broken, but
in theory...)

8 years agowidgetpaintable: Implement get_current_image()
Benjamin Otte [Mon, 2 Apr 2018 06:04:39 +0000 (08:04 +0200)]
widgetpaintable: Implement get_current_image()

Now that snapshot and empty paintables exist, this is rather trivial.

8 years agopaintable: Introduce gdk_paintable_new_empty()
Benjamin Otte [Mon, 2 Apr 2018 05:55:02 +0000 (07:55 +0200)]
paintable: Introduce gdk_paintable_new_empty()

Also, use it where appropriate.

8 years agosnapshot: Allow passing the bounds of the created paintable
Benjamin Otte [Mon, 2 Apr 2018 04:15:50 +0000 (06:15 +0200)]
snapshot: Allow passing the bounds of the created paintable

This allows being more specific about the size.
It's useful in particular when the resulting render nodes might be
too small for the size, not only when they are too large. For the
latter case, using a clip node would be enough.

It also requires adding a clip node when rendering the resulting
paintable, but that should be optimized out by GtkSnapshot when not
necessary.

8 years agowidgetpaintable: Protect against too many signals
Benjamin Otte [Sun, 1 Apr 2018 13:25:16 +0000 (15:25 +0200)]
widgetpaintable: Protect against too many signals

This is actually not just a mechnaism to protect against too many
signals, but it's also a method to getting those signals at the wrong
time.

For every size/content change, a widget needs to invalidate twice:
Once when it queues a resize/redraw (going valid => invalid) and once
when the new size/content is actually assigned (going invalid => valid).

However, one of those invalidations might be inconvenient for the
listener. GtkImage for example does not like receiving
invalidate-contents signals when new contents are assigned, but is fine
with them when the old ones go invalid. And it will not try to draw the
paintable in between anyway.

So by bypassing the 2nd emission if nothing was changed, we can make
GtkImage happy.

8 years agodemos: Add an image demo for widget paintables
Benjamin Otte [Sat, 31 Mar 2018 19:59:41 +0000 (21:59 +0200)]
demos: Add an image demo for widget paintables

8 years agowidget: Remove clip from size-allocate vfunc
Benjamin Otte [Sat, 31 Mar 2018 19:02:28 +0000 (21:02 +0200)]
widget: Remove clip from size-allocate vfunc

As the clip is no longer needed, get rid of it.

8 years agowidget: Don't keep track of clip anymore.
Benjamin Otte [Sat, 31 Mar 2018 18:15:47 +0000 (20:15 +0200)]
widget: Don't keep track of clip anymore.

It's not used anywhere, so why would we need it?

8 years agobroadway: Improve error message
Benjamin Otte [Sat, 31 Mar 2018 18:02:55 +0000 (20:02 +0200)]
broadway: Improve error message

This error message is printed into the journal if a GTK app can't
connect to eithre Wayland or X11. Make it at least mention who is not
capable of connecting to a server.

Unrelated, we might want to improve our error reporting when a GTK app
can't start, so that debugging issues with system startup / login get
easier to resolve.

8 years agowidget: Don't clip widgets anymore when snapshotting
Benjamin Otte [Sat, 31 Mar 2018 16:37:53 +0000 (18:37 +0200)]
widget: Don't clip widgets anymore when snapshotting

This is the first step in removing clips.

It's seperate to allow bisecting to this commit when analyzing
performance problems.

8 years agowidget: Cache clip from creating render node
Benjamin Otte [Sat, 31 Mar 2018 15:52:47 +0000 (17:52 +0200)]
widget: Cache clip from creating render node

When the clip changes that is passed to a snapshot function, we need to
create eventual cached render nodes because they might not have drawn
their whole area before.

Fixes issues with redrawing when scrolling.

8 years agosnapshot: Track clip as a rect only
Benjamin Otte [Sat, 31 Mar 2018 15:22:48 +0000 (17:22 +0200)]
snapshot: Track clip as a rect only

8 years agodiff: Allow aborting a diff
Benjamin Otte [Sat, 31 Mar 2018 10:52:19 +0000 (12:52 +0200)]
diff: Allow aborting a diff

When the max cost for finding a path gets to high, the diff can now be
aborted.

Because render nodes have a fallback method (by just marking the whole
bounds of the nodes as different), we use this to improve performance
of diffs.

This brings fishbowl (which is basically a container node with N images
that change every frame) back to close to previous performance.

8 years agobuild: Switch order of subdirectories
Benjamin Otte [Sat, 31 Mar 2018 09:05:31 +0000 (11:05 +0200)]
build: Switch order of subdirectories

After fixing this once already in 5970dac1679d the order was messed up
again in d50708b0240.

8 years agodiff: Introduce GskDiffSettings
Benjamin Otte [Sat, 31 Mar 2018 09:02:32 +0000 (11:02 +0200)]
diff: Introduce GskDiffSettings

We can put lots of settings there to allow tuning the diff algorithm
used.

8 years agovulkan: Always render clip extents
Benjamin Otte [Sat, 31 Mar 2018 06:17:42 +0000 (08:17 +0200)]
vulkan: Always render clip extents

Now that we have the full render nodes available, there is not much
benefit in fine-grained control over multiple rectangles.
In particular, it's causing pain with complex regions.

There might be a benefit in clipping to the region's rectangles in cases
like widget-factory where the whole diff is made up of the 2 rectangles
of spinner and the pulsing progress bar, but it needs a good heuristic
for where this is useful.

8 years agosnapshot: Remove clip argument from gtk_snapshot_new()
Benjamin Otte [Fri, 30 Mar 2018 13:39:25 +0000 (15:39 +0200)]
snapshot: Remove clip argument from gtk_snapshot_new()

It's not used anymore. And anybody who wants to have a clip on a
newly created snapshot can achieve that using gtk_snapshot_push_clip().

8 years agogtk: Remove gtk_widget_queue_draw_region()
Benjamin Otte [Wed, 28 Mar 2018 15:09:49 +0000 (17:09 +0200)]
gtk: Remove gtk_widget_queue_draw_region()

... and gtk_widget_queue_draw_area().

They don't doi anything anymore.

8 years agowidget: Stop tracking invalidations
Benjamin Otte [Wed, 28 Mar 2018 14:42:26 +0000 (16:42 +0200)]
widget: Stop tracking invalidations

Instead of calling gdk_surface_invalidate_region(), just
gdk_surface_queue_expose() and rely on the renderer computing the diff
from the previous rendering.

8 years agogtk: Remove debug updates
Benjamin Otte [Wed, 28 Mar 2018 14:06:32 +0000 (16:06 +0200)]
gtk: Remove debug updates

With the soon-to-arrive automatic updates (aka computing invalid region
from render nodes), this will no longer be necessary.

8 years agorenderer: Track the previous node
Benjamin Otte [Wed, 28 Mar 2018 13:43:43 +0000 (15:43 +0200)]
renderer: Track the previous node

... and diff the previous node with the current one to determine the
clip region.

This doubles the work necessary to track clip regions, but the following
commits will clean that up.

8 years agogsk: move begin/end_frame vfuncs into the renderers
Benjamin Otte [Wed, 28 Mar 2018 13:01:34 +0000 (15:01 +0200)]
gsk: move begin/end_frame vfuncs into the renderers

8 years agogsk: Fold gsk_renderer_begin_draw_frame() into renderer
Benjamin Otte [Tue, 27 Mar 2018 23:29:39 +0000 (01:29 +0200)]
gsk: Fold gsk_renderer_begin_draw_frame() into renderer

It doesn't need to be exported anymore.

As a side effect, the inspector no longer has any information about the
render region, so remove the code that was taking care of that.

8 years agowidget: Reorder gtk_widget_render()
Benjamin Otte [Tue, 27 Mar 2018 23:00:07 +0000 (01:00 +0200)]
widget: Reorder gtk_widget_render()

Now that we don't clip the created render nodes anymore, we don't have
to compute the clip region beforehand.

So snapshot the render nodes before initializing the renderer.

8 years agogsk: Implement gsk_render_node_diff()
Benjamin Otte [Tue, 27 Mar 2018 22:34:23 +0000 (00:34 +0200)]
gsk: Implement gsk_render_node_diff()

This includes a copy of the diff(1) algorithm used by git diff by Davide
Libenzi.

It's used for the common case ofcontainer nodes having only very few
changes for the few nodes of child widgets that changed (like a button
lighting up when hilighted or a spinning spinner).

8 years agomagnifier: Redo with GtkWidgetPaintable
Benjamin Otte [Fri, 23 Mar 2018 04:01:11 +0000 (05:01 +0100)]
magnifier: Redo with GtkWidgetPaintable

8 years agogtk: Add GtkWidgetPaintable
Benjamin Otte [Thu, 22 Mar 2018 19:47:28 +0000 (20:47 +0100)]
gtk: Add GtkWidgetPaintable

A GtkWidgetPaintable is a paintable that observes a given GtkWidget and
renders that widget into a paintable.

8 years agowidget: Cache the render node
Benjamin Otte [Tue, 20 Mar 2018 17:55:33 +0000 (18:55 +0100)]
widget: Cache the render node

This requires a bunch of refactorings:

1. Don't pass the current clip region to gtk_widget_snapshot()
   so we don't create full widget contents
3. Have a widget->priv->draw_needed that we invalidate on every
   queue_draw() call and set on every snapshot()
2. In queue_draw(), walk the widget chain to invalidate the
   render nodes of all parents

8 years agorendernode: Add gsk_render_node_diff()
Benjamin Otte [Tue, 20 Mar 2018 00:37:05 +0000 (01:37 +0100)]
rendernode: Add gsk_render_node_diff()

... and gsk_render_node_can_diff(). Those are vfuncs to compute a region
containing all the pixels that differ between the two nodes.

This is just the plumbing that chains into node classes. No node
implements it yet.

8 years agofont button: fix compiler warnings
Matthias Clasen [Thu, 5 Apr 2018 10:22:43 +0000 (06:22 -0400)]
font button: fix compiler warnings

A PangoLanguage is not a string.

8 years agoMerge branch 'text-changed-delete-4' into 'master'
Benjamin Otte [Wed, 4 Apr 2018 18:19:08 +0000 (18:19 +0000)]
Merge branch 'text-changed-delete-4' into 'master'

gtkentryaccessible: Fix text-changed::delete length

See merge request GNOME/gtk!100

8 years agoMerge branch 'textview-delete-4' into 'master'
Benjamin Otte [Wed, 4 Apr 2018 18:18:49 +0000 (18:18 +0000)]
Merge branch 'textview-delete-4' into 'master'

gtktextviewaccessible: update cursor position after text suppression

See merge request GNOME/gtk!102

8 years agogtktextviewaccessible: update cursor position after text suppression
Samuel Thibault [Wed, 4 Apr 2018 16:18:29 +0000 (18:18 +0200)]
gtktextviewaccessible: update cursor position after text suppression

delete_range_cb is set to be called before the text suppression done by
the gtktextlayout (otherwise it does not work properly). But at that
point the cursor position is not yet up to date.  We thus need to move
the accessibility cursor notification to after the actual text
suppression, by using another callback.

This fixes cursor position in brltty screen reading.

(cherry picked from commit fa6994d0331a219e85dce01007b2d6f3f7fd43c9)

8 years agogtkentryaccessible: Fix text-changed::delete length
Samuel Thibault [Wed, 4 Apr 2018 15:56:38 +0000 (17:56 +0200)]
gtkentryaccessible: Fix text-changed::delete length

The second parameter of the text-changed::delete event is to be the length,
not the end position.  This fixes spurious text removals in brltty
screen reading.

(cherry picked from commit 209f908a03a9d27508704425a57dcd533fab4c7d)

8 years agoGLArea: Remove wrong transfer annotation on new()
Daniel Boles [Wed, 4 Apr 2018 11:00:52 +0000 (12:00 +0100)]
GLArea: Remove wrong transfer annotation on new()

Like other widgets, this returns a floating reference, so
(transfer full) is wrong. Just omit the annotation as others do,
thus implying (transfer none).

Close https://gitlab.gnome.org/GNOME/gtk/issues/156

8 years agoimwayland: destroy objects only if it matches our manager object
Lionel Landwerlin [Tue, 27 Mar 2018 18:42:43 +0000 (19:42 +0100)]
imwayland: destroy objects only if it matches our manager object

Should fix one of the crash from #129.

8 years agofont chooser: Remove some dead code
Matthias Clasen [Mon, 2 Apr 2018 21:46:41 +0000 (17:46 -0400)]
font chooser: Remove some dead code

This is leftover code from already removed debug spew.

8 years agofont button: Fix a crash
Matthias Clasen [Mon, 2 Apr 2018 21:45:48 +0000 (17:45 -0400)]
font button: Fix a crash

Since we are now storing the language as a PangoLanguage,
we must not free it anymore.

8 years agofont chooser: Make the language property writable
Matthias Clasen [Mon, 2 Apr 2018 17:34:22 +0000 (13:34 -0400)]
font chooser: Make the language property writable

This is meant as an input to the font chooser.
We don't want the user to select a language, but
rather have fonts presented as they would work for
the current language. Therefore, do away with the
lang/script combo on the tweak page.

8 years agogtk, demos: Fix builds without HarfBuzz and PangoFT
Chun-wei Fan [Wed, 28 Mar 2018 04:57:28 +0000 (12:57 +0800)]
gtk, demos: Fix builds without HarfBuzz and PangoFT

Really exclude the portions in the gtkfontchooserwidget.c that are built
when HarfBuzz and PangoFT2 are built, and update the Meson files to
exclude such sources as well from the main GTK SO/DLL and from the
gtk4-demo program.

https://bugzilla.gnome.org/show_bug.cgi?id=773299

8 years agotestsuite/gsk/test-render-nodes.c: Avoid VLA usage
Chun-wei Fan [Wed, 28 Mar 2018 04:17:39 +0000 (12:17 +0800)]
testsuite/gsk/test-render-nodes.c: Avoid VLA usage

Just #define N as 5, instead of using a const int, which is not enough
to justify that as non-VLA usage.

https://bugzilla.gnome.org/show_bug.cgi?id=773299

8 years ago[gtk|demos/gtk-demo]/language-names.c: Fix build on non-GCC/CLang
Chun-wei Fan [Wed, 28 Mar 2018 03:59:11 +0000 (11:59 +0800)]
[gtk|demos/gtk-demo]/language-names.c: Fix build on non-GCC/CLang

Remove g_auto*() usage from these sources and use the traditional
g_free(), as g_auto*() are GCCisms (or CLangisms).

Also, don't include unistd.h unconditionally and stop including
langinfo.h and dirent.h, since they seem to be unused.

https://bugzilla.gnome.org/show_bug.cgi?id=773299

8 years agobuild: Fix linking demos on Visual Studio
Chun-wei Fan [Wed, 28 Mar 2018 04:13:08 +0000 (12:13 +0800)]
build: Fix linking demos on Visual Studio

The demos are now built as GUI programs, which will require the presence
of WinMain() on Visual Studio builds, unless we specify the entry point.

Pass the /entry:mainCRTStartup linker flag on Visual Studio builds for
the demo programs so that they can link properly.

https://bugzilla.gnome.org/show_bug.cgi?id=773299

8 years agofont chooser: Add examples for font features
Matthias Clasen [Sun, 1 Apr 2018 23:35:55 +0000 (19:35 -0400)]
font chooser: Add examples for font features

For some font features, we can figure out affected
glyphs, and show before/after. For some others, we
hardcode typical sequences.

Still to do: figure out how to find ligatures and
show them.

8 years agowidget-factory: Enable all details in the font chooser
Matthias Clasen [Sun, 1 Apr 2018 23:34:27 +0000 (19:34 -0400)]
widget-factory: Enable all details in the font chooser

We want to see this here.

8 years agoUpdate POTFILES.in
Piotr Drąg [Sun, 1 Apr 2018 13:00:07 +0000 (15:00 +0200)]
Update POTFILES.in

8 years agoW32: Link GTK to pangowin32
Руслан Ижбулатов [Sun, 4 Mar 2018 02:48:10 +0000 (02:48 +0000)]
W32: Link GTK to pangowin32

Needed for pango_win32_font_logfont() from gtkimcontextime.

https://bugzilla.gnome.org/show_bug.cgi?id=773299

8 years agoMerge branch 'lrn/issue-147' into 'master'
LRN [Sun, 1 Apr 2018 10:33:43 +0000 (10:33 +0000)]
Merge branch 'lrn/issue-147' into 'master'

Fix cursor handling in GTK4 on W32

Closes #147

See merge request GNOME/gtk!92

8 years agoFix some g-i annotation warnings
Rico Tzschichholz [Sun, 1 Apr 2018 07:15:08 +0000 (09:15 +0200)]
Fix some g-i annotation warnings

8 years agoEnable variations and features for font explorer
Matthias Clasen [Sun, 1 Apr 2018 01:31:11 +0000 (21:31 -0400)]
Enable variations and features for font explorer

8 years agofont chooser: Align level value names
Matthias Clasen [Sun, 1 Apr 2018 01:01:47 +0000 (21:01 -0400)]
font chooser: Align level value names

In the backport, I used the plural for variations, and that
is a better name, so use it here too.

8 years agofont chooser: Align property defaults
Matthias Clasen [Sun, 1 Apr 2018 00:59:35 +0000 (20:59 -0400)]
font chooser: Align property defaults

Set the default font chooser level to the same value we use
in the backports, to preserve font chooser behavior.

8 years agoFont chooser: Hide tweak button sometimes
Matthias Clasen [Sat, 31 Mar 2018 22:57:06 +0000 (18:57 -0400)]
Font chooser: Hide tweak button sometimes

When there is no chance of tweaking anything, don't
show a tweak button.

8 years agoDefeat compiler optimization
Matthias Clasen [Sat, 31 Mar 2018 22:49:15 +0000 (18:49 -0400)]
Defeat compiler optimization

We always want to call both update functions here, and
the compiler unhelpfully optimizes out the second call
if the first one returns TRUE.

8 years agoGskRenderer: Remove outdated documentation comment
Timm Bäder [Sat, 31 Mar 2018 11:52:19 +0000 (13:52 +0200)]
GskRenderer: Remove outdated documentation comment

All render node trees are immutable

8 years agosnapshot: Plug memory leak when collecting rounded clip nodes
Timm Bäder [Sat, 31 Mar 2018 09:41:13 +0000 (11:41 +0200)]
snapshot: Plug memory leak when collecting rounded clip nodes

8 years agogl renderer: Don't highlight cairo nodes as fallback
Timm Bäder [Fri, 30 Mar 2018 21:32:19 +0000 (23:32 +0200)]
gl renderer: Don't highlight cairo nodes as fallback

8 years agoProgressBar: Drop leftover "superimposed" mention
Daniel Boles [Sat, 31 Mar 2018 11:27:21 +0000 (12:27 +0100)]
ProgressBar: Drop leftover "superimposed" mention

This was missed from the commit that dropped other mentions to the
previous ability to superimpose text.

https://bugzilla.gnome.org/show_bug.cgi?id=748784

8 years agoappchooserwidget: search text using g_str_match_string()
Nelson Benítez León [Wed, 15 Nov 2017 14:46:31 +0000 (19:46 +0500)]
appchooserwidget: search text using g_str_match_string()

so we match on diacritics (eg. accented letters) and also
search on text tokens. As a plus we also reduce code size.

https://bugzilla.gnome.org/show_bug.cgi?id=745128

8 years agotogglebutton: Remove priv pointer
Timm Bäder [Thu, 29 Mar 2018 18:20:35 +0000 (20:20 +0200)]
togglebutton: Remove priv pointer

8 years agopopover: Remove priv pointer
Timm Bäder [Thu, 29 Mar 2018 18:15:39 +0000 (20:15 +0200)]
popover: Remove priv pointer

8 years agoshaderbuilder: Insert newlines directly after defines
Timm Bäder [Thu, 29 Mar 2018 16:16:58 +0000 (18:16 +0200)]
shaderbuilder: Insert newlines directly after defines

Instead of doing that in the loop in the last interation, we can just do
it after the loop.

8 years agogl renderer: Remover unused mask uniform
Timm Bäder [Thu, 29 Mar 2018 14:37:20 +0000 (16:37 +0200)]
gl renderer: Remover unused mask uniform

8 years agoshader builder: Remove unused members
Timm Bäder [Thu, 29 Mar 2018 14:15:40 +0000 (16:15 +0200)]
shader builder: Remove unused members

8 years agoshader builder: Reuse GString for shader code
Timm Bäder [Thu, 29 Mar 2018 14:14:18 +0000 (16:14 +0200)]
shader builder: Reuse GString for shader code

8 years agowidget: Fix snapshot condition
Timm Bäder [Thu, 29 Mar 2018 07:00:48 +0000 (09:00 +0200)]
widget: Fix snapshot condition

Of course, we only need to snapshot if both width and height > 0,
otherwise the result is invisible.

8 years agoentrybuffer: Remove priv pointer
Timm Bäder [Thu, 29 Mar 2018 06:40:46 +0000 (08:40 +0200)]
entrybuffer: Remove priv pointer

8 years agomenubar: Don't crash when cycling through menubars
Timm Bäder [Thu, 29 Mar 2018 06:32:51 +0000 (08:32 +0200)]
menubar: Don't crash when cycling through menubars

8 years agoMerge branch 'im-wayland-reset' into 'master'
Matthias Clasen [Fri, 30 Mar 2018 20:14:40 +0000 (20:14 +0000)]
Merge branch 'im-wayland-reset' into 'master'

wayland: Don't emit signals if nothing changed

See merge request GNOME/gtk!83